////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// This file is a part of PMCG project. PMCG is the acronym of Physical       //
// Methods in Computer Graphics.                                              //
//                                                                            //
// Classical algorithms in computer graphics use discrete objects in 3D space //
// like vectors, matrices, triangles, planes. Physical way use an  analytical //
// objects like function, scalar and vector fields. Physical way gives new    //
// look to classical algorithms and allows to overcome some difficulties of   //
// pure geometric methods.                                                    //
//                                                                            //
// Project site:                                                              //
//     http://code.google.com/p/pmcg/                                         //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#ifndef BBOX_H
#define BBOX_H

#include "TriMesh.h"

//! Bounding box
//!
class BBox
{
// methods
public:
    BBox();
    BBox(const TriMesh & mesh);
    ~BBox();

    //! Return random point inside this bounding box.
    Vector3D GetRandomPoint();

private:
    void Init();

// members
private:
    double m_min_x, m_max_x;
    double m_min_y, m_max_y;
    double m_min_z, m_max_z;
};

#endif // BBOX_H
